Alguem sabe me dizer como tirar o level system, a cada level a mais o pokemon fica mais forte?
- Fórum
- OTServ
- Suporte
- Tópicos Sem Resposta
- [Encerrado] [Pokemon] Dúvidas? - Pda
[Encerrado] [Pokemon] Dúvidas? - Pda
Por lucashgas, 10 de jan. de 2012 em Tópicos Sem Resposta
Vai receber meu REP+, mais ainda não é como eu desejava, quero um pouco mais avançado, ensinando um pouco mais avançado kkkk !!
REP+
Bom va em pokemon moves em lib e
elseif spell == "Ember" then
doSendDistanceShoot(getThingPositionWithDebug(cid), getThingPositionWithDebug(target), 3)
doAreaCombatHealthAtDistance(cid, FIREDAMAGE, getThingPositionWithDebug(target), 0, -min, -max, 15) os numeros 3, e 15 sao os efeitos ![]()
@AlanWake
Baixe a versao sem lvl do slicer
info
Grupo: Marquês
Registrado: 18/05/11
Posts: 1.1k
Reputação: +333
Gênero: Masculino
Char no Tibia: Kyuzen

@Slicer teria como colocar para o pokemon pegar lvl 200?
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

@zeref..
1* eh podia... kkk
2* pra fla a real a 1* coisa q me veio a mente foi criar um novo poke "imortal" com a a flag -<flag attackable="0"/>- mas dai quando eu ia fazer isso.. me veio a ideia da pos kk
3* ^^
4* eh daria pra por la sim.. eu coloquei em some functions pq la q fica as functions de horario mas... e sim precisa alterar no bloblaevents.xml tb pq eh la q eh configurado os horarios ms.. a lib eh soh pras functions q mostram qnt tempo falta pra proxima golden arena...
@ZeSy
esse erro... ou tu n pego o script lib/032-position.lua... ou n configuro as pontas superior esquerda e inferior direita da sua arena no script, globalevents/scripts/CleanGoldenArena... ;x
aki vai normal.. ;x tenta importar e dai fecha a janela de itens do mapa editor e abre ela denovo.. sei la.. ;x
sempre teve q organizar os horarios em globalevents.xml.. ;x ta ate no script mandando fazer isso..
--podese organiza os horarios das golden arenas no globalevents.xml!!
@Bolz
mano se vc usar a ferramente de busca ali no topo do topico e procurar por 'lvl 200' ou 'limite lvl' sei la.. tu acha VARIOS tutoriais de como fazer isso... ;x
info
Grupo: Campones
Registrado: 25/07/12
Posts: 8
Reputação: 0
Char no Tibia: Saclas

@Slicer
eu achei o problema, é que o burro aqui, esqueceu de colocar no remeres os arquivos item.xml e o item.otm (sei lá das quantas) do teu serv ![]()
agora foi, só que o map q eu tenho nao é compativel com o teu (ou eu vou ter que achar um que seja, ou refazer TUDO)
de qualquer jeito vlw ^^
Editado Julho 27 por Yaldabaoth
Alguem Consegue criar um spell que tire os status miss,confusion?
@Slicer teria como colocar para o pokemon pegar lvl 200?
vai em data/lib/level tables.lua apague tudo e adicione:
function getPokemonExperienceTable(pokemonname)
if isInArray(fastexppokes, pokemonname) then
return fastexptable
elseif isInArray(mediumfastexppokes, pokemonname) then
return mediumfastexptable
elseif isInArray(mediumslowexppokes, pokemonname) then
return mediumslowexptable
elseif isInArray(slowexppokes, pokemonname) then
return slowexptable
end
print(""..pokemonname.." doesn't have an experience table speed gain. Check it at data/lib/level tables.lua.")
return mediumfastexptable
end
fastexppokes = {"Clefairy", "Clefable", "Iglybuff", "Jigglypuff", "Wigglytuff", "Chansey", "Shiny Clefairy", "Shiny Clefable", "Shiny Iglybuff", "Shiny Jigglypuff", "Shiny Wigglytuff", "Shiny Chansey", "Ledyba", "Ledian", "Spinarak", "Ariados", "Cleffa", "Togepi", "Togetic", "Marill", "Azumarill", "Aipom", "Misdreavus", "Snubbull", "Granbull", "Corsola", "Delibird", "Smeargle", "Blissey"}
fastexptable = {
[1] = 0,
[2] = 51,
[3] = 172,
[4] = 409,
[5] = 800,
[6] = 1382,
[7] = 2195,
[8] = 3276,
[9] = 4665,
[10] = 6400,
[11] = 8518,
[12] = 11059,
[13] = 14060,
[14] = 17561,
[15] = 21600,
[16] = 26214,
[17] = 31443,
[18] = 37324,
[19] = 43897,
[20] = 51200,
[21] = 59270,
[22] = 68147,
[23] = 77868,
[24] = 88473,
[25] = 100000,
[26] = 112486,
[27] = 125971,
[28] = 140492,
[29] = 156089,
[30] = 172800,
[31] = 190662,
[32] = 209715,
[33] = 229996,
[34] = 251545,
[35] = 274400,
[36] = 298598,
[37] = 324179,
[38] = 351180,
[39] = 379641,
[40] = 409600,
[41] = 441094,
[42] = 474163,
[43] = 508844,
[44] = 545177,
[45] = 583200,
[46] = 622950,
[47] = 664467,
[48] = 707788,
[49] = 752953,
[50] = 800000,
[51] = 848966,
[52] = 899891,
[53] = 952812,
[54] = 1007769,
[55] = 1064800,
[56] = 1123942,
[57] = 1185235,
[58] = 1248716,
[59] = 1314425,
[60] = 1382400,
[61] = 1452678,
[62] = 1525299,
[63] = 1600300,
[64] = 1677721,
[65] = 1757600,
[66] = 1839974,
[67] = 1924883,
[68] = 2012364,
[69] = 2102457,
[70] = 2195200,
[71] = 2290630,
[72] = 2388787,
[73] = 2489708,
[74] = 2593433,
[75] = 2700000,
[76] = 2809446,
[77] = 2921811,
[78] = 3037132,
[79] = 3155449,
[80] = 3276800,
[81] = 3401222,
[82] = 3528755,
[83] = 3659436,
[84] = 3793305,
[85] = 3930400,
[86] = 4070758,
[87] = 4214419,
[88] = 4361420,
[89] = 4511801,
[90] = 4665600,
[91] = 4822854,
[92] = 4983603,
[93] = 5147884,
[94] = 5315737,
[95] = 5487200,
[96] = 5662310,
[97] = 5841107,
[98] = 6023628,
[99] = 6209913,
[100] = 6200000,
[101] = 6300000,
[102] = 6400000,
[103] = 6500000,
[104] = 6600000,
[105] = 6700000,
[106] = 6800000,
[107] = 6900000,
[108] = 7000000,
[109] = 7100000,
[110] = 7200000,
[111] = 7300000,
[112] = 7400000,
[113] = 7500000,
[114] = 7600000,
[115] = 7700000,
[116] = 7800000,
[117] = 7900000,
[118] = 80000000,
[119] = 81200000,
[120] = 82400000,
[121] = 83600000,
[122] = 84800000,
[123] = 85000000,
[124] = 85200000,
[125] = 87400000,
[126] = 88600000,
[127] = 89800000,
[128] = 90000000,
[129] = 91200000,
[130] = 92400000,
[131] = 93600000,
[132] = 94800000,
[133] = 95000000,
[134] = 96200000,
[135] = 97400000,
[136] = 98600000,
[137] = 99800000,
[138] = 100000000,
[139] = 101000000,
[140] = 102000000,
[141] = 104000000,
[142] = 106000000,
[143] = 108000000,
[144] = 110000000,
[145] = 111000000,
[146] = 112000000,
[147] = 113300000,
[148] = 114006000,
[149] = 115000000,
[150] = 116000000,
[151] = 117000000,
[152] = 118000000,
[153] = 119000000,
[154] = 120000000,
[155] = 121000000,
[156] = 122000000,
[157] = 123000000,
[158] = 124000000,
[159] = 125000000,
[160] = 126400000,
[161] = 127000000,
[162] = 128000000,
[163] = 129000000,
[164] = 130000000,
[165] = 131000000,
[166] = 132000000,
[167] = 133000000,
[168] = 134000000,
[169] = 135000000,
[170] = 136000000,
[171] = 137000000,
[172] = 138000000,
[173] = 139000000,
[174] = 140000000,
[175] = 141000000,
[176] = 142000000,
[177] = 143800000,
[178] = 144000000,
[179] = 145000000,
[180] = 146000000,
[181] = 147000000,
[182] = 148000000,
[183] = 149000000,
[184] = 150000000,
[185] = 151000000,
[186] = 152600000,
[187] = 153000000,
[188] = 154000000,
[189] = 155000000,
[190] = 156000000,
[191] = 157000000,
[192] = 158000000,
[193] = 159000000,
[194] = 160000000,
[195] = 161000000,
[196] = 162000000,
[197] = 163000000,
[198] = 164000000,
[199] = 165000000,
[200] = 16600000,
[201] = 999999999}
mediumfastexppokes = {"Caterpie", "Metapod", "Butterfree", "Weedle", "Kakuna", "Beedrill", "Rattata", "Raticate", "Spearow", "Fearow", "Ekans", "Arbok", "Pikachu", "Raichu", "Sandshrew", "Sandslash", "Vulpix", "Ninetales", "Zubat", "Golbat", "Paras", "Parasect", "Diglett", "Dugtrio", "Meowth", "Persian", "Psyduck", "Golduck", "Mankey", "Primeape", "Ponyta", "Rapidash", "Magnemite", "Magneton", "Doduo", "Dodrio", "Seel", "Dewgong", "Grimer", "Muk", "Onix", "Steelix", "Drowzee", "Hypno", "Krabby", "Kingler", "Voltorb", "Electrode", "Cubone", "Marowak", "Hitmonlee", "Tyrogue", "Hitmonchan", "Lickitung", "Koffing", "Weezing", "Kangaskhan", "Horsea", "Seadra", "Goldeen", "Seaking", "Mr. Mime", "Scyther", "Jynx", "Smoochum", "Electabuzz", "Magmar", "Ditto", "Eevee", "Jolteon", "Flareon", "Porygon", "Omanyte", "Omastar", "Kabuto", "Kabutops", "Shiny Caterpie", "Shiny Metapod", "Shiny Butterfree", "Shiny Weedle", "Shiny Kakuna", "Shiny Beedrill", "Shiny Rattata", "Shiny Raticate", "Shiny Spearow", "Shiny Fearow", "Shiny Ekans", "Shiny Arbok", "Shiny Pikachu", "Shiny Raichu", "Shiny Sandshrew", "Shiny Sandslash", "Shiny Vulpix", "Shiny Ninetales", "Shiny Zubat", "Shiny Golbat", "Shiny Paras", "Shiny Parasect", "Shiny Diglett", "Shiny Dugtrio", "Shiny Meowth", "Shiny Persian", "Shiny Psyduck", "Shiny Golduck", "Shiny Mankey", "Shiny Primeape", "Shiny Ponyta", "Shiny Rapidash", "Shiny Magnemite", "Shiny Magneton", "Shiny Doduo", "Shiny Dodrio", "Shiny Seel", "Shiny Dewgong", "Shiny Grimer", "Shiny Muk", "Shiny Onix", "Shiny Steelix", "Shiny Drowzee", "Shiny Hypno", "Shiny Krabby", "Shiny Kingler", "Shiny Voltorb", "Shiny Electrode", "Shiny Cubone", "Shiny Marowak", "Shiny Hitmonlee", "Tyrogue", "Shiny Hitmonchan", "Shiny Lickitung", "Shiny Koffing", "Shiny Weezing", "Shiny Kangaskhan", "Shiny Horsea", "Shiny Seadra", "Shiny Goldeen", "Shiny Seaking", "Shiny Mr. Mime", "Shiny Scyther", "Shiny Jynx", "Smoochum", "Shiny Electabuzz", "Shiny Magmar", "Shiny Ditto", "Shiny Eevee", "Shiny Jolteon", "Shiny Flareon", "Shiny Porygon", "Shiny Omanyte", "Shiny Omastar", "Shiny Kabuto", "Shiny Kabutops", "Sentret", "Furret", "Hoothoot", "Noctowl", "Crobat", "Pichu", "Natu", "Xatu", "Wooper", "Quagsire", "Espeon", "Umbreon", "Girafarig", "Pineco", "Forretress", "Dunsparce", "Qwilfish", "Scizor", "Magcargo", "Slugma", "Remoraid", "Octillery", "Kingdra", "Phanpy", "Donphan", "Porygon2", "Hitmontop", "Elekid", "Magby", "Vaporeon", "Shiny Vaporeon", "Venonat", "Venomoth", "Slowpoke", "Shiny Slowpoke", "Slowbro", "Slowking", "Farfetch'd", "Tangela", "Shiny Tangela", "Sudowoodo", "Yanma", "Unown", "Wobbuffet", "Teddiursa", "Ursaring"}
mediumfastexptable = {
[1] = 0,
[2] = 64,
[3] = 216,
[4] = 512,
[5] = 1000,
[6] = 1728,
[7] = 2744,
[8] = 4096,
[9] = 5832,
[10] = 8000,
[11] = 10648,
[12] = 13824,
[13] = 17576,
[14] = 21952,
[15] = 27000,
[16] = 32768,
[17] = 39304,
[18] = 46656,
[19] = 54872,
[20] = 64000,
[21] = 74088,
[22] = 85184,
[23] = 97336,
[24] = 110592,
[25] = 125000,
[26] = 140608,
[27] = 157464,
[28] = 175616,
[29] = 195112,
[30] = 216000,
[31] = 238328,
[32] = 262144,
[33] = 287496,
[34] = 314432,
[35] = 343000,
[36] = 373248,
[37] = 405224,
[38] = 438976,
[39] = 474552,
[40] = 512000,
[41] = 551368,
[42] = 592704,
[43] = 636056,
[44] = 681472,
[45] = 729000,
[46] = 778688,
[47] = 830584,
[48] = 884736,
[49] = 941192,
[50] = 1000000,
[51] = 1061208,
[52] = 1124864,
[53] = 1191016,
[54] = 1259712,
[55] = 1331000,
[56] = 1404928,
[57] = 1481544,
[58] = 1560896,
[59] = 1643032,
[60] = 1728000,
[61] = 1815848,
[62] = 1906624,
[63] = 2000376,
[64] = 2097152,
[65] = 2197000,
[66] = 2299968,
[67] = 2406104,
[68] = 2515456,
[69] = 2628072,
[70] = 2744000,
[71] = 2863288,
[72] = 2985984,
[73] = 3112136,
[74] = 3241792,
[75] = 3375000,
[76] = 3511808,
[77] = 3652264,
[78] = 3796416,
[79] = 3944312,
[80] = 4096000,
[81] = 4251528,
[82] = 4410944,
[83] = 4574296,
[84] = 4741632,
[85] = 4913000,
[86] = 5088448,
[87] = 5268024,
[88] = 5451776,
[89] = 5639752,
[90] = 5832000,
[91] = 6028568,
[92] = 6229504,
[93] = 6434856,
[94] = 6644672,
[95] = 6859000,
[96] = 7077888,
[97] = 7301384,
[98] = 7529536,
[99] = 7762392,
[100] = 8000000,
[101] = 8100000,
[102] = 8200000,
[103] = 8300000,
[104] = 8400000,
[105] = 8500000,
[106] = 8600000,
[107] = 8700000,
[108] = 8800000,
[109] = 8900000,
[110] = 9000000,
[111] = 9100000,
[112] = 9200000,
[113] = 9300000,
[114] = 9400000,
[115] = 9500000,
[116] = 9600000,
[117] = 9700000,
[118] = 98000000,
[119] = 99200000,
[120] = 10000000,
[121] = 10100000,
[122] = 10200000,
[123] = 10330000,
[124] = 10404000,
[125] = 10510500,
[126] = 10601060,
[127] = 10700107,
[128] = 10800000,
[129] = 10900000,
[130] = 11000000,
[131] = 11100000,
[132] = 11200000,
[133] = 11300000,
[134] = 11400000,
[135] = 11540000,
[136] = 11660000,
[137] = 11780000,
[138] = 11800000,
[139] = 11920000,
[140] = 12040000,
[141] = 12100000,
[142] = 12200000,
[143] = 12300000,
[144] = 12400000,
[145] = 12500000,
[146] = 12600000,
[147] = 12700000,
[148] = 12800000,
[149] = 12900000,
[150] = 13000000,
[151] = 13100000,
[152] = 13200000,
[153] = 13300000,
[154] = 13400000,
[155] = 13500000,
[156] = 13600000,
[157] = 13700000,
[158] = 13800000,
[159] = 13900000,
[160] = 14000000,
[161] = 14100000,
[162] = 14200000,
[163] = 14300000,
[164] = 14400000,
[165] = 14500000,
[166] = 14600000,
[167] = 14700000,
[168] = 14800000,
[169] = 14900000,
[170] = 15000000,
[171] = 15100000,
[172] = 15200000,
[173] = 15300000,
[174] = 15400000,
[175] = 15500000,
[176] = 15600000,
[177] = 15700000,
[178] = 15800000,
[179] = 15900000,
[180] = 16000000,
[181] = 16100000,
[182] = 16200000,
[183] = 16300000,
[184] = 16400000,
[185] = 16500000,
[186] = 16600000,
[187] = 16700000,
[188] = 16800000,
[189] = 16900000,
[190] = 17000000,
[191] = 17100000,
[192] = 17200000,
[193] = 17300000,
[194] = 17400000,
[195] = 17500000,
[196] = 17600000,
[197] = 17700000,
[198] = 17800000,
[199] = 17900000,
[200] = 18000000,
[201] = 999999999}
mediumslowexppokes = {"Bulbasaur", "Ivysaur", "Venusaur", "Charmander", "Charmeleon", "Charizard", "Squirtle", "Wartortle", "Blastoise", "Pidgey", "Pidgeotto", "Pidgeot", "Nidoran Female", "Nidorina", "Nidoqueen", "Nidoran Male", "Nidorino", "Nidoking", "Oddish", "Gloom", "Vileplume", "Poliwag", "Poliwhirl", "Poliwrath", "Abra", "Kadabra", "Alakazam", "Machop", "Machoke", "Machamp", "Bellsprout", "Weepinbell", "Victreebel", "Geodude", "Graveler", "Golem", "Gastly", "Haunter", "Gengar", "Mew", "Shiny Bulbasaur", "Shiny Ivysaur", "Shiny Venusaur", "Shiny Charmander", "Shiny Charmeleon", "Shiny Charizard", "Shiny Squirtle", "Shiny Wartortle", "Shiny Blastoise", "Shiny Pidgey", "Shiny Pidgeotto", "Shiny Pidgeot", "Shiny Nidoran Female", "Shiny Nidorina", "Shiny Nidoqueen", "Shiny Nidoran Male", "Shiny Nidorino", "Shiny Nidoking", "Shiny Oddish", "Shiny Gloom", "Shiny Vileplume", "Shiny Poliwag", "Shiny Poliwhirl", "Shiny Poliwrath", "Shiny Abra", "Shiny Kadabra", "Shiny Alakazam", "Shiny Machop", "Shiny Machoke", "Shiny Machamp", "Shiny Bellsprout", "Shiny Weepinbell", "Shiny Victreebel", "Shiny Geodude", "Shiny Graveler", "Shiny Golem", "Shiny Gastly", "Shiny Haunter", "Shiny Gengar", "Shiny Mew", "Chikorita", "Bayleef", "Meganium", "Cyndaquil", "Quilava", "Typhlosion", "Totodile", "Croconaw", "Feraligatr", "Mareep", "Flaaffy", "Ampharos", "Bellossom", "Politoed", "Hoppip", "Skiploom", "Jumpluff", "Sunkern", "Sunflora", "Murkrow", "Gligar", "Shuckle", "Sneasel", "Celebi"}
mediumslowexptable = {
[1] = 0,
[2] = 72,
[3] = 456,
[4] = 768,
[5] = 1080,
[6] = 1432,
[7] = 1888,
[8] = 2512,
[9] = 3352,
[10] = 4480,
[11] = 5936,
[12] = 7784,
[13] = 10088,
[14] = 12896,
[15] = 16280,
[16] = 20280,
[17] = 24960,
[18] = 30384,
[19] = 36600,
[20] = 43680,
[21] = 51664,
[22] = 60616,
[23] = 70600,
[24] = 81664,
[25] = 93880,
[26] = 107288,
[27] = 121952,
[28] = 137936,
[29] = 155288,
[30] = 174080,
[31] = 194352,
[32] = 216168,
[33] = 239592,
[34] = 264672,
[35] = 291480,
[36] = 320056,
[37] = 350464,
[38] = 382768,
[39] = 417016,
[40] = 453280,
[41] = 491600,
[42] = 532040,
[43] = 574664,
[44] = 619520,
[45] = 666680,
[46] = 716184,
[47] = 768096,
[48] = 822480,
[49] = 879384,
[50] = 938880,
[51] = 1001008,
[52] = 1065832,
[53] = 1133416,
[54] = 1203808,
[55] = 1277080,
[56] = 1353272,
[57] = 1432448,
[58] = 1514672,
[59] = 1599992,
[60] = 1688480,
[61] = 1780176,
[62] = 1875144,
[63] = 1973448,
[64] = 2075136,
[65] = 2180280,
[66] = 2288920,
[67] = 2401120,
[68] = 2516944,
[69] = 2636440,
[70] = 2759680,
[71] = 2886704,
[72] = 3017576,
[73] = 3152360,
[74] = 3291104,
[75] = 3433880,
[76] = 3580728,
[77] = 3731712,
[78] = 3886896,
[79] = 4046328,
[80] = 4210080,
[81] = 4378192,
[82] = 4550728,
[83] = 4727752,
[84] = 4909312,
[85] = 5095480,
[86] = 5286296,
[87] = 5481824,
[88] = 5682128,
[89] = 5887256,
[90] = 6097280,
[91] = 6312240,
[92] = 6532200,
[93] = 6757224,
[94] = 6987360,
[95] = 7222680,
[96] = 7463224,
[97] = 7709056,
[98] = 7960240,
[99] = 8216824,
[100] = 8478880,
[101] = 8600000,
[102] = 8800000,
[103] = 9000000,
[104] = 9200000,
[105] = 9400000,
[106] = 9600000,
[107] = 9800000,
[108] = 10000000,
[109] = 10200000,
[110] = 10400000,
[111] = 10600000,
[112] = 10800000,
[113] = 11000000,
[114] = 11200000,
[115] = 11400000,
[116] = 11600000,
[117] = 11800000,
[118] = 12000000,
[119] = 12200000,
[120] = 12400000,
[121] = 12600000,
[122] = 12800000,
[123] = 13030000,
[124] = 13204000,
[125] = 13460500,
[126] = 13601060,
[127] = 13800107,
[128] = 14000000,
[129] = 14200000,
[130] = 14400000,
[131] = 14600000,
[132] = 14800000,
[133] = 15000000,
[134] = 15200000,
[135] = 15440000,
[136] = 15660000,
[137] = 15880000,
[138] = 16000000,
[139] = 16220000,
[140] = 16440000,
[141] = 16600000,
[142] = 16800000,
[143] = 17000000,
[144] = 17200000,
[145] = 17400000,
[146] = 17600000,
[147] = 17800000,
[148] = 18000000,
[149] = 18200000,
[150] = 18400000,
[151] = 18600000,
[152] = 18800000,
[153] = 19000000,
[154] = 19200000,
[155] = 19400000,
[156] = 19600000,
[157] = 19800000,
[158] = 20000000,
[159] = 20200000,
[160] = 20400000,
[161] = 20600000,
[162] = 20800000,
[163] = 21000000,
[164] = 21200000,
[165] = 21400000,
[166] = 21600000,
[167] = 21800000,
[168] = 22000000,
[169] = 22200000,
[170] = 22400000,
[171] = 22600000,
[172] = 22800000,
[173] = 23000000,
[174] = 23200000,
[175] = 23400000,
[176] = 23600000,
[177] = 23800000,
[178] = 24000000,
[179] = 24200000,
[180] = 24400000,
[181] = 24600000,
[182] = 24800000,
[183] = 25000000,
[184] = 25200000,
[185] = 25400000,
[186] = 25600000,
[187] = 25800000,
[188] = 26000000,
[189] = 26200000,
[190] = 26400000,
[191] = 26600000,
[192] = 26800000,
[193] = 27000000,
[194] = 27200000,
[195] = 27400000,
[196] = 27600000,
[197] = 27800000,
[198] = 28000000,
[199] = 28200000,
[200] = 28400000,
[201] = 999999999}
slowexppokes = {"Ho-oh", "Growlithe", "Arcanine", "Tentacool", "Tentacruel", "Shellder", "Cloyster", "Exeggcute", "Exeggutor", "Rhyhorn", "Rhydon", "Staryu", "Starmie", "Pinsir", "Tauros", "Magikarp", "Gyarados", "Lapras", "Aerodactyl", "Snorlax", "Articuno", "Zapdos", "Moltres", "Dratini", "Dragonair", "Dragonite", "Mewtwo", "Mew", "Chinchou", "Lanturn", "Heracross", "Swinub", "Piloswine", "Mantine", "Skarmory", "Houndour", "Houndoom", "Stantler", "Miltank", "Raikou", "Entei", "Suicune", "Larvitar", "Pupitar", "Tyranitar", "Lugia", "Shiny Growlithe", "Shiny Arcanine", "Shiny Tentacool", "Shiny Tentacruel", "Shiny Shellder", "Shiny Cloyster", "Shiny Exeggcute", "Shiny Exeggutor", "Shiny Rhyhorn", "Shiny Rhydon", "Shiny Staryu", "Shiny Starmie", "Shiny Pinsir", "Shiny Tauros", "Shiny Magikarp", "Shiny Gyarados", "Shiny Lapras", "Shiny Aerodactyl", "Shiny Snorlax", "Shiny Articuno", "Shiny Zapdos", "Shiny Moltres", "Shiny Dratini", "Shiny Dragonair", "Shiny Dragonite", "Shiny Mewtwo", "Shiny Mew",}
slowexptable = {
[1] = 0,
[2] = 80,
[3] = 270,
[4] = 640,
[5] = 1250,
[6] = 2160,
[7] = 3430,
[8] = 5120,
[9] = 7290,
[10] = 10000,
[11] = 13310,
[12] = 17280,
[13] = 21970,
[14] = 27440,
[15] = 33750,
[16] = 40960,
[17] = 49130,
[18] = 58320,
[19] = 68590,
[20] = 80000,
[21] = 92610,
[22] = 106480,
[23] = 121670,
[24] = 138240,
[25] = 156250,
[26] = 175760,
[27] = 196830,
[28] = 219520,
[29] = 243890,
[30] = 270000,
[31] = 297910,
[32] = 327680,
[33] = 359370,
[34] = 393040,
[35] = 428750,
[36] = 466560,
[37] = 506530,
[38] = 548720,
[39] = 593190,
[40] = 640000,
[41] = 689210,
[42] = 740880,
[43] = 795070,
[44] = 851840,
[45] = 911250,
[46] = 973360,
[47] = 1038230,
[48] = 1105920,
[49] = 1176490,
[50] = 1250000,
[51] = 1326510,
[52] = 1406080,
[53] = 1488770,
[54] = 1574640,
[55] = 1663750,
[56] = 1756160,
[57] = 1851930,
[58] = 1951120,
[59] = 2053790,
[60] = 2160000,
[61] = 2269810,
[62] = 2383280,
[63] = 2500470,
[64] = 2621440,
[65] = 2746250,
[66] = 2874960,
[67] = 3007630,
[68] = 3144320,
[69] = 3285090,
[70] = 3430000,
[71] = 3579110,
[72] = 3732480,
[73] = 3890170,
[74] = 4052240,
[75] = 4218750,
[76] = 4389760,
[77] = 4565330,
[78] = 4745520,
[79] = 4930390,
[80] = 5120000,
[81] = 5314410,
[82] = 5513680,
[83] = 5717870,
[84] = 5927040,
[85] = 6141250,
[86] = 6360560,
[87] = 6585030,
[88] = 6814720,
[89] = 7049690,
[90] = 7290000,
[91] = 7535710,
[92] = 7786880,
[93] = 8043570,
[94] = 8305840,
[95] = 8573750,
[96] = 8847360,
[97] = 9126730,
[98] = 9411920,
[99] = 9702990,
[100] = 10000000,
[101] = 10300000,
[102] = 10600000,
[103] = 10900000,
[104] = 11200000,
[105] = 11500000,
[106] = 11800000,
[107] = 12100000,
[108] = 12400000,
[109] = 12700000,
[110] = 13000000,
[111] = 13300000,
[112] = 13600000,
[113] = 13900000,
[114] = 14200000,
[115] = 14500000,
[116] = 14800000,
[117] = 15100000,
[118] = 15400000,
[119] = 15700000,
[120] = 16000000,
[121] = 16300000,
[122] = 16600000,
[123] = 16900000,
[124] = 17240000,
[125] = 17505000,
[126] = 17810060,
[127] = 18101007,
[128] = 18400000,
[129] = 18700000,
[130] = 19000000,
[131] = 19300000,
[132] = 19600000,
[133] = 19900000,
[134] = 20200000,
[135] = 20540000,
[136] = 20860000,
[137] = 21180000,
[138] = 21400000,
[139] = 21720000,
[140] = 22040000,
[141] = 22300000,
[142] = 22600000,
[143] = 22900000,
[144] = 23200000,
[145] = 23500000,
[146] = 23800000,
[147] = 24100000,
[148] = 24400000,
[149] = 24700000,
[150] = 25000000,
[151] = 25300000,
[152] = 25600000,
[153] = 25900000,
[154] = 26200000,
[155] = 26500000,
[156] = 26800000,
[157] = 27100000,
[158] = 27400000,
[159] = 27700000,
[160] = 28000000,
[161] = 28300000,
[162] = 28600000,
[163] = 28900000,
[164] = 29200000,
[165] = 29500000,
[166] = 29800000,
[167] = 30100000,
[168] = 30400000,
[169] = 30700000,
[170] = 31000000,
[171] = 31300000,
[172] = 31600000,
[173] = 31900000,
[174] = 32200000,
[175] = 32500000,
[176] = 32800000,
[177] = 33100000,
[178] = 33400000,
[179] = 33700000,
[180] = 34000000,
[181] = 34300000,
[182] = 34600000,
[183] = 34900000,
[184] = 35200000,
[185] = 35500000,
[186] = 35800000,
[187] = 36100000,
[188] = 36400000,
[189] = 36700000,
[190] = 37000000,
[191] = 37300000,
[192] = 37600000,
[193] = 37900000,
[194] = 38200000,
[195] = 38500000,
[196] = 38800000,
[197] = 39100000,
[198] = 39400000,
[199] = 39700000,
[200] = 40000000,
[201] = 999999999}
agr vai em data/lib/level system.lua apague tudo e adicione:
function getPokemonStatus(name, multiplier)
local a = pokes[name]
local m = 1
if not a then return false end
if not a.offense then return false end
if multiplier then m = multiplier end
local ret = {}
ret.off = a.offense * m
ret.offense = ret.off
ret.def = a.defense * m
ret.defense = ret.def
ret.agi = a.agility * m
ret.agility = ret.agi
ret.spatk = a.specialattack * m
ret.specialattack = ret.spatk
ret.vit = a.vitality * m
ret.vitality = ret.vit
return ret
end
function getPokemonXMLOutfit(name)
local a = "data/monster/pokes/"..name..".xml"
local b = io.open(a, "a+")
local c = b:read("*all")
b:close()
local d, e = c:find('look type="(.-)"')
c = string.sub(c, d + 11, e - 1)
return tonumber
end
function doEvolutionOutfit(cid, oldout, outfit)
if not isCreature(cid) then return true end
if getCreatureOutfit(cid).lookType == oldout then
doSetCreatureOutfit(cid, {lookType = outfit}, -1)
else
doSetCreatureOutfit(cid, {lookType = oldout}, -1)
end
end
function doStartEvolution(cid, evolution, seconds)
if not isCreature(cid) then return true end
local a = getPlayerStorageValue(cid, 1007)
local b = getCreatureHealth(cid) / getCreatureMaxHealth(cid)
local d = getThingPos(cid)
local e = getCreatureMaster(cid)
if getHappinessRate(cid) < 1 then return true end
local f = getCreatureOutfit(cid).lookType
local g = getItemAttribute(getPlayerSlotItem(e, 8).uid, "nick") or getCreatureName(cid)
local h = getPokemonXMLOutfit(evolution)
doItemSetAttribute(getPlayerSlotItem(e, 8).uid, "hp", b)
doCreatureSay(e, "What? My "..g.." is evolving!", TALKTYPE_SAY)
doSummonMonster(e, "Evolution")
doReturnPokemon(e, cid, getPlayerSlotItem(e, 8), 0, true)
local evo = getCreatureSummons(e)[1]
doEvolutionOutfit(evo, h, f)
doCreatureSetHideHealth(evo, true)
doCreatureSetLookDir(evo, 2)
setPlayerStorageValue(evo, 1007, g)
doTeleportThing(evo, d, false)
addEvent(sendSSJEffect, 250, evo)
doSendAnimatedText(getThingPos(evo), "EVOLUTION", COLOR_GRASS)
doSendEvolutionEffect(evo, getThingPos(evo), evolution, 20, false, false, f, h)
end
function doSendEvolutionEffect(cid, pos, evolution, turn, ssj, evolve, f, h)
if not isCreature(cid) then
doSendAnimatedText(pos, "CANCEL", 215)
return true end
if evolve then
doEvolvePokemon(getCreatureMaster(cid), {uid = cid}, evolution, 0, 0)
return true
end
doSendMagicEffect(pos, 18)
if ssj then
sendSSJEffect(evo)
end
doEvolutionOutfit(cid, f, h)
addEvent(doSendEvolutionEffect, math.pow(1900, turn/20), cid, getThingPos(cid), evolution, turn - 1, turn == 19, turn == 2, f, h)
end
function sendSSJEffect(cid)
if not isCreature(cid) then return true end
local pos1 = getThingPos(cid)
local pos2 = getThingPos(cid)
pos2.x = pos2.x + math.random(-1, 1)
pos2.y = pos2.y - math.random(1, 2)
doSendDistanceShoot(pos1, pos2, 37)
addEvent(sendSSJEffect, 45, cid)
end
function sendFinishEvolutionEffect(cid, alternate)
if not isCreature(cid) then return true end
local pos1 = getThingPos(cid)
if alternate then
local pos = {
[1] = {-2, 0},
[2] = {-1, -1},
[3] = {0, -2},
[4] = {1, -1},
[5] = {2, 0},
[6] = {1, 1},
[7] = {0, 2},
[8] = {-1, 1}}
for a = 1, 8 do
local pos2 = getThingPos(cid)
pos2.x = pos2.x + pos[a][1]
pos2.y = pos2.y + pos[a][2]
local pos = getThingPos(cid)
doSendDistanceShoot(pos2, pos, 37)
addEvent(doSendDistanceShoot, 300, pos, pos2, 37)
end
else
for a = 0, 3 do
doSendDistanceShoot(pos1, getPosByDir(pos1, a), 37)
end
for a = 4, 7 do
addEvent(doSendDistanceShoot, 600, pos1, getPosByDir(pos1, a), 37)
end
end
end
function doEvolvePokemon(cid, item2, theevo, stone1, stone2)
if not isCreature(cid) then return true end
if not pokes[theevo] or not pokes[theevo].offense then
doReturnPokemon(cid, item2.uid, getPlayerSlotItem(cid, 8), pokeballs[getPokeballType(getPlayerSlotItem(cid, 8).itemid)].effect, false, true)
return true
end
local owner = getCreatureMaster(item2.uid)
local pokeball = getPlayerSlotItem(cid, 8)
local description = "Contains a "..theevo.."."
local pct = getCreatureHealth(item2.uid) / getCreatureMaxHealth(item2.uid)
doItemSetAttribute(pokeball.uid, "hp", pct)
doItemSetAttribute(pokeball.uid, "poke", theevo)
doItemSetAttribute(pokeball.uid, "description", "Contains a "..theevo..".")
doPlayerSendTextMessage(cid, 27, "Congratulations! Your "..getPokeName(item2.uid).." evolved into a "..theevo.."!")
doSendMagicEffect(getThingPos(item2.uid), 18)
doTransformItem(getPlayerSlotItem(cid, 7).uid, fotos[theevo])
doSendMagicEffect(getThingPos(cid), 173)
local oldpos = getThingPos(item2.uid)
local oldlod = getCreatureLookDir(item2.uid)
local oldlvl = getPokemonLevel(item2.uid)
doRemoveCreature(item2.uid)
doSummonMonster(cid, theevo)
local pk = getCreatureSummons(cid)[1]
doTeleportThing(pk, oldpos, false)
doCreatureSetLookDir(pk, oldlod)
sendFinishEvolutionEffect(pk, true)
addEvent(sendFinishEvolutionEffect, 550, pk, true)
addEvent(sendFinishEvolutionEffect, 1050, pk)
doPlayerRemoveItem(cid, stone1, 1)
doPlayerRemoveItem(cid, stone2, 1)
doAddPokemonInOwnList(cid, theevo)
local status = getPokemonStatus(getCreatureName(pk))
local off = status.off * 7.5
local def = status.def * 7.5
local agi = status.agi * 7.5
local spatk = status.spatk * 7.5
local vit = status.vit * 7
doItemSetAttribute(pokeball.uid, "offense", getItemAttribute(pokeball.uid, "offense") + off)
doItemSetAttribute(pokeball.uid, "defense", getItemAttribute(pokeball.uid, "defense") + def)
doItemSetAttribute(pokeball.uid, "speed", getItemAttribute(pokeball.uid, "speed") + agi)
doItemSetAttribute(pokeball.uid, "specialattack", getItemAttribute(pokeball.uid, "specialattack") + spatk)
doItemSetAttribute(pokeball.uid, "vitality", getItemAttribute(pokeball.uid, "vitality") + vit)
doPlayerSendTextMessage(cid, 27, "Evolution bonus: • Offense: +"..doMathDecimal(off).." • Defense: +"..doMathDecimal(def).." • Spc. Atk: +"..doMathDecimal(spatk).." • Agility: +"..doMathDecimal(agi).." • Vitality: +"..doMathDecimal(vit).."")
local happy = getItemAttribute(pokeball.uid, "happy")
doItemSetAttribute(pokeball.uid, "happy", happy + happyGainedOnEvolution)
if happy + happyGainedOnEvolution > 255 then
doItemSetAttribute(pokeball.uid, "happy", 255)
end
adjustStatus(pk, pokeball.uid, true, false)
if useKpdoDlls then
doUpdateMoves(cid)
end
end
function givePokemonExp(cid, item, expe, pct, rarecandy)
if expe <= 0 or not isCreature(cid) then return true end
local leveltable = getPokemonExperienceTable(getPokeballName(item.uid, true))
if getItemAttribute(item.uid, "exp") + expe > leveltable[200] then
givePokemonExp(cid, item, leveltable[200] - getItemAttribute(item.uid, "exp"))
return true
end
doItemSetAttribute(item.uid, "exp", getItemAttribute(item.uid, "exp") + expe)
doItemSetAttribute(item.uid, "happy", getItemAttribute(item.uid, "happy") + 1)
doItemSetAttribute(item.uid, "nextlevelexp", getItemAttribute(item.uid, "nextlevelexp") - expe)
if pct then
doPlayerSendTextMessage(cid, 27, "Your "..getPokeballName(item.uid).." has received "..expe.." experience points ("..pct.."%).")
else
if getItemAttribute(item.uid, "nextlevelexp") > 0 then
doPlayerSendTextMessage(cid, 27, "Your "..getPokeballName(item.uid).." ["..getItemAttribute(item.uid, "level").."] has received "..expe.." experience points ("..getItemAttribute(item.uid, "nextlevelexp").." to next level).")
else
doPlayerSendTextMessage(cid, 27, "Your "..getPokeballName(item.uid).." ["..getItemAttribute(item.uid, "level").."] has received "..expe.." experience points and has leveled up!")
end
end
if isBeingUsed(item.itemid) then
doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), expe, 215)
end
if getItemAttribute(item.uid, "nextlevelexp") <= 0 then
local summon = getCreatureSummons(cid)[1]
if not isCreature(summon) then return true end
doSendFlareEffect(getThingPos(summon))
doSendAnimatedText(getThingPos(summon), "Level up!", 215)
adjustPokemonLevel(item.uid, cid, item.itemid)
end
end
function givePokemonExpInBp(cid, item, expe, ballid, pct, hidemessage)
if expe <= 0 or not isCreature(cid) then return true end
local leveltable = getPokemonExperienceTable(getPokeballName(item, true))
if getItemAttribute(item, "exp") + expe > leveltable[200] then
givePokemonExpInBp(cid, item, leveltable[200] - getItemAttribute(item, "exp"), ballid)
return true
end
doItemSetAttribute(item, "exp", getItemAttribute(item, "exp") + expe)
doItemSetAttribute(item, "happy", getItemAttribute(item, "happy") + 1)
doItemSetAttribute(item, "nextlevelexp", getItemAttribute(item, "nextlevelexp") - expe)
if not hidemessage then
if pct then
doPlayerSendTextMessage(cid, 27, "Your "..getPokeballName(item).." has received "..expe.." experience points ("..pct.."%).")
else
if getItemAttribute(item, "nextlevelexp") > 0 then
doPlayerSendTextMessage(cid, 27, "Your "..getPokeballName(item).." ["..getItemAttribute(item, "level").."] has received "..expe.." experience points inside his pokeball ("..getItemAttribute(item, "nextlevelexp").." to next level).")
else
doPlayerSendTextMessage(cid, 27, "Your "..getPokeballName(item).." ["..getItemAttribute(item, "level").."] has received "..expe.." experience points and has leveled up inside his pokeball.")
adjustPokemonLevel(item, cid, ballid)
end
end
end
end
function doMathDecimal(number, casas)
if math.floor(number) == number then return number end
local c = casas and casas + 1 or 3
for a = 0, 10 do
if math.floor(number) < math.pow(10, a) then
local str = string.sub(""..number.."", 1, a + c)
return tonumber(str)
end
end
return number
end
function adjustPokemonLevel(item, cid, id, rarecandy)
if not isCreature(cid) then return true end
local exp = getItemAttribute(item, "exp")
local level = getItemAttribute(item, "level")
local leveltable = getPokemonExperienceTable(getPokeballName(item, true))
local newlevel = 1
for x = 1, 200 do
if exp >= leveltable[x] and exp < leveltable[x+1] then
newlevel = x
end
end
if newlevel <= 1 then return true end
local levelsup = (newlevel - level)
local pokemon = getItemAttribute(item, "poke")
local happy = getItemAttribute(item, "happy")
local rate = happy / 100
local newhappiness = happy
if happy >= 250 then
newhappiness = 255
elseif happy >= 230 then
newhappiness = happy + 4
elseif happy >= 210 then
newhappiness = happy + 6
elseif happy >= 180 then
newhappiness = happy + 8
elseif happy >= 140 then
newhappiness = happy + 10
elseif happy >= 110 then
newhappiness = happy + 12
else
newhappiness = happy + 15
end
local status = getPokemonStatus(pokemon)
local off = status.off * rate * levelsup
local def = status.def * rate * levelsup
local agi = status.agi * rate * levelsup
local spatk = status.spatk * rate * levelsup
local vit = status.vit * rate * levelsup
doItemSetAttribute(item, "level", newlevel)
if not rarecandy then
doItemSetAttribute(item, "happy", newhappiness)
end
local nextexp = leveltable[newlevel + 1] - exp
doItemSetAttribute(item, "nextlevelexp", nextexp)
doItemSetAttribute(item, "offense", getItemAttribute(item, "offense") + off)
doItemSetAttribute(item, "defense", getItemAttribute(item, "defense") + def)
doItemSetAttribute(item, "speed", getItemAttribute(item, "speed") + agi)
doItemSetAttribute(item, "specialattack", getItemAttribute(item, "specialattack") + spatk)
doItemSetAttribute(item, "vitality", getItemAttribute(item, "vitality") + vit)
if newlevel > getPlayerLevel(cid) + pokemonMaxLevelAbovePlayer then
addEvent(doPlayerSendTextMessage, 30, cid, 18, "Warning: Your "..getPokeballName(item).."'s ["..newlevel.."] level is much higher than yours, so you will not be able to call him to battles.")
end
if isCreature(cid) and id >= 1 and isBeingUsed(id) then
adjustStatus(getCreatureSummons(cid)[1], item, false, true)
doPlayerSendTextMessage(cid, 27, "• Level: "..newlevel.." (+"..levelsup..") • Offense: +"..doMathDecimal(off).." • Defense: +"..doMathDecimal(def).." • Spc. Atk: +"..doMathDecimal(spatk).." • Agility: +"..doMathDecimal(agi).." • Vitality: +"..doMathDecimal(vit).."")
if happy < minHappyToEvolve then return true end
if pokemonsCanEvolveByLevel then
local summon = getCreatureSummons(cid)[1]
local reqlevel = poevo[getCreatureName(summon)] and poevo[getCreatureName(summon)].level or -1
local level = getItemAttribute(item, "level")
local evolution = "none"
local name = getCreatureName(summon)
if name == "Tyrogue" and level >= 20 then
if getOffense(summon) == getDefense(summon) then
evolution = "Hitmontop"
elseif getOffense(summon) > getDefense(summon) then
evolution = "Hitmonlee"
else
evolution = "Hitmonchan"
end
elseif name == "Eevee" then
if happy >= maxHappyToEvolve then
if isDay() then
evolution = "Espeon"
else
evolution = "Umbreon"
end
end
elseif name == "Slowpoke" and level >= 28 then
evolution = "Slowbro"
elseif name == "Poliwhirl" and level >= 36 then
evolution = "Poliwrath"
elseif reqlevel > 4 and level >= reqlevel then
evolution = poevo[getCreatureName(summon)].evolution
elseif reqlevel == 2 and happy >= maxHappyToEvolve then
evolution = poevo[getCreatureName(summon)] and poevo[getCreatureName(summon)].evolution or "none"
end
if evolution ~= "none" then
doStartEvolution(summon, evolution, 4)
end
end
end
end
function adjustStatus(pk, item, health, vite, conditions)
if not isCreature(pk) then return true end
local bonusoffense = getItemAttribute(item, boffense) or 0
local bonusdefense = getItemAttribute(item, bdefense) or 0
local bonusagility = getItemAttribute(item, bagility) or 0
local bonussattack = getItemAttribute(item, bsattack) or 0
setPlayerStorageValue(pk, 1000, getItemAttribute(item, "level"))
setPlayerStorageValue(pk, 1001, getItemAttribute(item, "offense") + bonusoffense)
setPlayerStorageValue(pk, 1002, getItemAttribute(item, "defense") + bonusdefense)
setPlayerStorageValue(pk, 1003, getItemAttribute(item, "speed") + bonusagility)
setPlayerStorageValue(pk, 1005, getItemAttribute(item, "specialattack") + bonussattack)
local gender = getItemAttribute(item, "gender") and getItemAttribute(item, "gender") or 0
doCreatureSetSkullType(pk, gender)
if vite == true then
local pct = getCreatureHealth(pk) / getCreatureMaxHealth(pk)
local vit = getItemAttribute(item, "vitality") - getPlayerStorageValue(pk, 1004)
setCreatureMaxHealth(pk, getCreatureMaxHealth(pk) + ( vit * HPperVIT ))
doCreatureAddHealth(pk, pct * vit * HPperVIT)
end
setPlayerStorageValue(pk, 1004, getItemAttribute(item, "vitality"))
doRegainSpeed(pk)
local nick = getItemAttribute(item, "poke")
if getItemAttribute(item, "nick") then
nick = getItemAttribute(item, "nick")
end
setPlayerStorageValue(pk, 1007, nick)
local boostlevel = getItemAttribute(item, "boost") or 0
local boostshow = hideBoost and "]" or " + "..boostlevel.."]"
local lvlstr = ""
if showBoostSeparated then
boostshow = hideBoost and "]" or "] [+"..boostlevel.."]"
end
if hideSummonsLevel then
if not hideBoost then
nick = nick.." [+"..boostlevel.."]"
end
else
nick = nick.." ["..getItemAttribute(item, "level")..""..boostshow..""
end
doCreatureSetNick(pk, nick)
if not getItemAttribute(item, "happy") then
doItemSetAttribute(item, "happy", 120)
end
if not getItemAttribute(item, "hunger") then
doItemSetAttribute(item, "hunger", 5)
end
local happy = getItemAttribute(item, "happy")
if happy < 0 then
happy = 0
end
setPlayerStorageValue(pk, 1008, happy)
local hunger = getItemAttribute(item, "hunger")
setPlayerStorageValue(pk, 1009, hunger)
if health == true then
local mh = getCreatureMaxHealth(pk) + HPperVIT * getVitality(pk)
local rd = 1 - (tonumber(getItemAttribute(item, "hp")))
setCreatureMaxHealth(pk, mh)
doCreatureAddHealth(pk, getCreatureMaxHealth(pk))
doCreatureAddHealth(pk, -(getCreatureMaxHealth(pk) * rd))
end
if isSummon(pk) and conditions then
local burn = getItemAttribute(item, "burn")
if burn and burn >= 0 then
addEvent(doAdvancedBurn, 5000, pk, pk, getItemAttribute(item, "burndmg"), burn - 1)
end
local poison = getItemAttribute(item, "poison")
if poison and poison >= 0 then
addEvent(doAdvancedPoison, 2500, pk, pk, getItemAttribute(item, "poisondmg"), poison - 1)
end
if getItemAttribute(item, "confuse") and getItemAttribute(item, "confuse") >= 1 then
addEvent(doAdvancedConfuse, 1200, pk, getItemAttribute(item, "confuse"), getPlayerStorageValue(pk, 3891))
end
if getItemAttribute(item, "blind") and getItemAttribute(item, "blind") >= 1 then
addEvent(doBlind, 300, pk, getItemAttribute(item, "blind"), getItemAttribute(item, "blindef"))
end
if getItemAttribute(item, "sleep") and getItemAttribute(item, "sleep") >= 1 then
doSleep(pk, getItemAttribute(item, "sleep"))
end
end
return true
end
function setWildPokemonLevel(cid, optionalLevel, optionalStatus, optionalNick, optionalExtraExp)
if not isCreature(cid) then return true end
local levelRange = 0
local off = 0
local def = 0
local agi = 0
local spatk = 0
local vit = 0
local this = getCreatureName(cid)
local ee = 1
if optionalExtraExp then
ee = optionalExtraExp
end
if optionalLevel and tonumber(optionalLevel) >= 1 then
if optionalLevel <= 200 then
levelRange = optionalLevel
else
levelRange = 200
end
elseif getCreatureOutfit(cid).lookHead and getCreatureOutfit(cid).lookBody and getCreatureOutfit(cid).lookHead <= getCreatureOutfit(cid).lookBody then
levelRange = math.random(getCreatureOutfit(cid).lookHead, getCreatureOutfit(cid).lookBody)
else
levelRange = math.random(20, 30)
end
local status = getPokemonStatus(this)
if status then
off = status.off
def = status.def
agi = status.agi
vit = status.vit
spatk = status.spatk
end
setPlayerStorageValue(cid, 1000, levelRange)
if optionalStatus and optionalStatus.off then
setPlayerStorageValue(cid, 1001, optionalStatus.offense)
setPlayerStorageValue(cid, 1002, optionalStatus.defense)
setPlayerStorageValue(cid, 1003, optionalStatus.agility)
setPlayerStorageValue(cid, 1004, optionalStatus.vitality)
setPlayerStorageValue(cid, 1005, optionalStatus.specialattack)
setPlayerStorageValue(cid, 1011, optionalStatus.offense)
setPlayerStorageValue(cid, 1012, optionalStatus.defense)
setPlayerStorageValue(cid, 1013, optionalStatus.agility)
setPlayerStorageValue(cid, 1014, optionalStatus.vitality)
setPlayerStorageValue(cid, 1015, optionalStatus.specialattack)
else
setPlayerStorageValue(cid, 1001, 5 + math.random(off * levelRange * 0.9, off * levelRange * 1.8))
setPlayerStorageValue(cid, 1002, 5 + math.random(def * levelRange * 0.9, def * levelRange * 1.8))
setPlayerStorageValue(cid, 1003, math.random(agi * levelRange * 0.9, agi * levelRange * 1.8))
setPlayerStorageValue(cid, 1004, math.random(vit * levelRange * 0.9, vit * levelRange * 1.8))
setPlayerStorageValue(cid, 1005, 5 + math.random(spatk * levelRange * 0.9, spatk * levelRange * 1.8))
setPlayerStorageValue(cid, 1011, getPlayerStorageValue(cid, 1001))
setPlayerStorageValue(cid, 1012, getPlayerStorageValue(cid, 1002))
setPlayerStorageValue(cid, 1013, getPlayerStorageValue(cid, 1003))
setPlayerStorageValue(cid, 1014, getPlayerStorageValue(cid, 1004))
setPlayerStorageValue(cid, 1015, getPlayerStorageValue(cid, 1005))
end
doRegainSpeed(cid)
setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + getPlayerStorageValue(cid, 1004) * HPperVIT * vitReductionForWild)
doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
if pokes[getCreatureName(cid)].exp then
--getMonsterInfo(getCreatureName(cid)).experience
local exp = (50 + pokes[getCreatureName(cid)].exp) * baseExpRate + pokes[getCreatureName(cid)].vitality * levelRange * pokemonExpPerLevelRate
setPlayerStorageValue(cid, 1006, exp * generalExpRate * ee)
end
local wildshow = wildBeforeNames and "Wild " or ""
if optionalNick then
if hideWildsLevel then
doCreatureSetNick(cid, optionalNick)
else
doCreatureSetNick(cid, optionalNick.." ["..getWildPokemonLevel(cid).."]")
end
else
if hideWildsLevel then
doCreatureSetNick(cid, ""..wildshow..""..getCreatureName(cid).."")
else
doCreatureSetNick(cid, ""..wildshow..""..getCreatureName(cid).." ["..getWildPokemonLevel(cid).."]")
end
end
end
function getOffense(cid)
if not isCreature(cid) then return 0 end
if getPlayerStorageValue(cid, 3894) >= 1 then
return tonumber(getPlayerStorageValue(cid, 1001)) / 2
end
return tonumber(getPlayerStorageValue(cid, 1001))
end
function getDefense(cid)
if not isCreature(cid) then return 0 end
if getPlayerStorageValue(cid, 3894) >= 1 then
return tonumber(getPlayerStorageValue(cid, 1002)) / 2
end
return tonumber(getPlayerStorageValue(cid, 1002))
end
function getSpeed(cid)
if not isCreature(cid) then return 0 end
return tonumber(getPlayerStorageValue(cid, 1003))
end
function getVitality(cid)
if not isCreature(cid) then return 0 end
return tonumber(getPlayerStorageValue(cid, 1004))
end
function getSpecialAttack(cid)
if not isCreature(cid) then return 0 end
return tonumber(getPlayerStorageValue(cid, 1005))
end
function getHappiness(cid)
if not isCreature(cid) then return 0 end
return tonumber(getPlayerStorageValue(cid, 1008))
end
function getSpecialDefense(cid)
if not isCreature(cid) then return 0 end
return getSpecialAttack(cid) * 0.85 + getDefense(cid) * 0.2
end
function getWildPokemonExp(cid)
return getPlayerStorageValue(cid, 1006)
end
function getWildPokemonLevel(cid)
return getPlayerStorageValue(cid, 1000)
end
function getLevel(cid)
if isSummon(cid) then
return getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "level")
end
return getPlayerStorageValue(cid, 1000)
end
function getPokeName(cid)
if not isSummon(cid) then return getCreatureName(cid) end
if getCreatureName(cid) == "Evolution" then return getPlayerStorageValue(cid, 1007) end
local item = getPlayerSlotItem(getCreatureMaster(cid), 8)
if getItemAttribute(item.uid, "nick") then
return getItemAttribute(item.uid, "nick")
end
return getCreatureName(cid)
end
function getPokeballName(item, truename)
if not truename and getItemAttribute(item, "nick") then
return getItemAttribute(item, "nick")
end
return getItemAttribute(item, "poke")
end
function getPokemonName(cid)
return getCreatureName(cid)
end
function getPokemonLevel(cid)
if not isCreature(cid) then return 0 end
return getPlayerStorageValue(cid, 1000)
end
function getPokemonGender(cid)
return getCreatureSkullType(cid)
end
eu acho q da pra usar algo comoAlguem Consegue criar um spell que tire os status miss,confusion?
doCureStatus(cid, "all", true)
EU ACHO! é que olhei essa function no script da Nurse. .--.
o npc não compra mais os pokemons "pokemon collector"
no servidor sem level.
alguem sabe como concertar ? :c
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

obrigado denovo pelo report '-' irei arrumar ele xD posto aki assim q termina de arrumalo
concerta tbm o do rare candy. u.u :*obrigado denovo pelo report '-' irei arrumar ele xD posto aki assim q termina de arrumalo
EDIT: o npc aNpcCasino tem que arrumar o script dele tbm. =P
Editado Julho 27 por MaatheeuusYuurii
obrigado denovo pelo report '-' irei arrumar ele xD posto aki assim q termina de arrumalo
blz Slicer!
cara você sabe como coloca para os clans terem pokemons shinys proprios ? Ex: Seavell Master usa Shiny Vaporeon etc.. vlw!
obrigado denovo pelo report '-' irei arrumar ele xD posto aki assim q termina de arrumalo
blz Slicer!
cara você sabe como coloca para os clans terem pokemons shinys proprios ? Ex: Seavell Master usa Shiny Vaporeon etc.. vlw!
na atualização que ele postou, 2.2 e 1.2 ja estão tudo certinho. Seavel = Shiny Poreon, Volcanic = Shiny Flareon etc ...
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

q q tem o rare candy? ele n serve pro serv sem lvl na real.. ;x
soh uma atualizaçao rapida... esses npcs vao ta na proxima atualizaçao tb..
Npc pokemon seller.. npc/scripts/pokemon seller.lua
local focus = 0
local talk_start = 0
local conv = 0
local cost = 0
local pname = ""
local baseprice = 0
function sellPokemon(cid, name, price)
local bp = getPlayerSlotItem(cid, CONST_SLOT_BACKPACK)
for a, b in pairs(pokeballs) do
local balls = getItemsInContainerById(bp.uid, b.on)
for _, ball in pairs (balls) do
if string.lower(getItemAttribute(ball, "poke")) == string.lower(name) then
selfSay("Wow! Thanks for this wonderful "..getItemAttribute(ball, "poke").."! Take yours "..price.." dollars. Would you like to sell another pokemon?")
doRemoveItem(ball, 1)
doPlayerAddMoney(cid, price * 100)
return true
end
end
end
selfSay("You don't have a "..name..", make sure it is in your backpack and it is not fainted!")
return false
end
function onCreatureSay(cid, type, msg)
local msg = string.lower(msg)
if string.find(msg, "!") or string.find(msg, ",") then
return true
end
if focus == cid then
talk_start = os.clock()
end
if msgcontains(msg, 'hi') and focus == 0 and getDistanceToCreature(cid) <= 3 then
selfSay('Welcome to my store! I buy pokemons of all species, just tell me the name of the pokemon you want to sell.')
focus = cid
conv = 1
talk_start = os.clock()
cost = 0
pname = ""
return true
end
if msgcontains(msg, 'bye') and focus == cid then
selfSay('See you around then!')
focus = 0
return true
end
if msgcontains(msg, 'yes') and focus == cid and conv == 4 then
selfSay('Tell me the name of the pokemon you would like to sell.')
conv = 1
return true
end
if msgcontains(msg, 'no') and conv == 4 and focus == cid then
selfSay('Ok, see you around then!')
focus = 0
return true
end
local common = {"rattata", "caterpie", "weedle", "magikarp"}
if conv == 1 and focus == cid then
for a = 1, #common do
if msgcontains(msg, common[a]) then
selfSay('I dont buy such a common pokemon!')
return true
end
end
end
if msgcontains(msg, 'no') and conv == 3 and focus == cid then
selfSay('Well, then what pokemon would you like to sell?')
conv = 1
return true
end
if (conv == 1 or conv == 4) and focus == cid then
local name = doCorrectPokemonName(msg)
local pokemon = pokes[name]
if not pokemon then
selfSay("Sorry, I don't know what pokemon you're talking about! Are you sure you spelled it correctly?")
return true
end
baseprice = math.floor(pokemon.level * 150) -- preço baseado em level base
cost = baseprice
pname = name
selfSay("Are you sure you want to sell a "..name.." for "..cost.." dollars?")
conv = 3
end
if isConfirmMsg(msg) and focus == cid and conv == 3 then
if sellPokemon(cid, pname, cost) then
conv = 4
else
conv = 1
end
return true
end
end
local intervalmin = 38
local intervalmax = 70
local delay = 25
local number = 1
local messages = {"Buying some beautiful pokemons! Come here to sell them!",
"Wanna sell a pokemon? Came to the right place!",
"Buy pokemon! Excellent offers!",
"Tired of a pokemon? Why don't you sell it to me then?",
}
function onThink()
if focus == 0 then
selfTurn(1)
delay = delay - 0.5
if delay <= 0 then
selfSay(messages[number])
number = number + 1
if number > #messages then
number = 1
end
delay = math.random(intervalmin, intervalmax)
end
return true
else
if not isCreature(focus) then
focus = 0
return true
end
local npcpos = getThingPos(getThis())
local focpos = getThingPos(focus)
if npcpos.z ~= focpos.z then
focus = 0
return true
end
if (os.clock() - talk_start) > 70 then
focus = 0
selfSay("I have other clients too, talk to me when you feel like selling a pokemon.")
end
if getDistanceToCreature(focus) > 3 then
selfSay("Good bye then and thanks!")
focus = 0
return true
end
local dir = doDirectPos(npcpos, focpos)
selfTurn(dir)
end
return true
end
npc cassino... lib/npcCassino.lua
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function doBuyPokemonWithCasinoCoins(cid, poke) npcHandler:onSellpokemon(cid) end
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
------------------------------------------------------------
local function buyPoke(cid, pokemon, price)
if pokemon == "" then return true end
local gender = getRandomGenderByName(pokemon)
local btype = "normal"
local happy = 180
if getPlayerFreeCap(cid) >= 6 or getContainerSize(getPlayerSlotItem(cid, 3).uid) >= 32 then
item = doCreateItemEx(11826)
else
item = doAddContainerItem(getPlayerSlotItem(cid, 3).uid, 11826, 1)
end
doItemSetAttribute(item, "poke", pokemon)
doItemSetAttribute(item, "hp", 1)
doItemSetAttribute(item, "happy", happy)
doItemSetAttribute(item, "gender", gender)
doItemSetAttribute(item, "description", "Contains a "..pokemon..".")
doItemSetAttribute(item, "fakedesc", "Contains a "..pokemon..".")
if getPlayerFreeCap(cid) >= 6 or getContainerSize(getPlayerSlotItem(cid, 3).uid) >= 32 then
doPlayerSendMailByName(getCreatureName(cid), item, 1)
end
setPlayerStorageValue(cid, 23254, getPlayerStorageValue(cid, 23254) - price)
end
------------------------------------------------------------------------------
if msgcontains(msg, 'pokemon') then
selfSay("Hello ".. getCreatureName(cid) .. ", I have three Pokemons to choose one among them, {Eevee}, {Porygon} and {Ditto}, which would you choose? ", cid)
talkState[cid] = 1
elseif (msgcontains(msg, 'Eevee') or msgcontains(msg, 'eevee')) and talkState[cid] == 1 then
selfSay("Are you sure you want buy an Eevee for 22000 cassino coins?", cid)
talkState[cid] = 2
elseif (msgcontains(msg, 'Porygon') or msgcontains(msg, 'porygon')) and talkState[cid] == 1 then
selfSay("Are you sure you want buy an Porygon for 45000 cassino coins?", cid)
talkState[cid] = 3
elseif (msgcontains(msg, 'Ditto') or msgcontains(msg, 'ditto')) and talkState[cid] == 1 then
selfSay("Are you sure you want buy an Ditto for 60000 cassino coins?", cid)
talkState[cid] = 4
elseif (msgcontains(msg, 'nao') or msgcontains(msg, 'no')) and talkState[cid] == 2 then
selfSay("Did not like this choice? You can choose one {Porygon} or one {Ditto} too.", cid)
talkState[cid] = 1
elseif (msgcontains(msg, 'nao') or msgcontains(msg, 'no')) and talkState[cid] == 3 then
selfSay("Did not like this choice? You can choose one {Eevee} or one {Ditto} too.", cid)
talkState[cid] = 1
elseif (msgcontains(msg, 'nao') or msgcontains(msg, 'no')) and talkState[cid] == 4 then
selfSay("Did not like this choice? You can choose one {Eevee} or one {Porygon} too.", cid)
talkState[cid] = 1
elseif (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) and talkState[cid] == 2 then
if getPlayerStorageValue(cid, 23254) >= 22000 then
local pokemon = "Eevee"
local price = 22000
buyPoke(cid, pokemon, price)
selfSay("Here you are! You have just bought an "..pokemon.." for "..price.." casino coins!", cid)
talkState[cid] = 0
else
selfSay("You don't have enought cassino coins!", cid)
talkState[cid] = 0
end
elseif (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) and talkState[cid] == 3 then
if getPlayerStorageValue(cid, 23254) >= 45000 then
local pokemon = "Porygon"
local price = 45000
buyPoke(cid, pokemon, price)
selfSay("Here you are! You have just bought an "..pokemon.." for "..price.." casino coins!", cid)
talkState[cid] = 0
else
selfSay("You don't have enought cassino coins!", cid)
talkState[cid] = 0
end
elseif (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) and talkState[cid] == 4 then
if getPlayerStorageValue(cid, 23254) >= 60000 then
local pokemon = "Ditto"
local price = 60000
buyPoke(cid, pokemon, price)
selfSay("Here you are! You have just bought an "..pokemon.." for "..price.." casino coins!", cid)
talkState[cid] = 0
else
selfSay("You don't have enought cassino coins!", cid)
talkState[cid] = 0
end
end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Edit.. Off...
alguem sabe aonde fica essa function? ja procurei em tudo e nd u,U
doSetMonsterGym(summon, focus)
Editado Julho 27 por Slicer
Nurse joy dando erro quando da "hi" com o pokemon fora do slot.
[27/07/2012 13:08:38] [Error - Npc interface]
[27/07/2012 13:08:38] data/npc/scripts/heal.lua:onCreatureSay
[27/07/2012 13:08:38] Description:
[27/07/2012 13:08:38] (luaDoItemSetAttribute) Item not found









info
Grupo: Infante
Registrado: 25/01/12
Posts: 1.6k
Reputação: +330
@Slicer..
Sobre vc falou de muda os horario só la Some function, não é só lá não.. igual zeref falou.. tem que muda no globalevents tbm '-'
se vc muda só na some function vc vai coloka lá X horarios, a hr que chega o X horario que vc quer.. o script não roda.. e vai começa de 04:38 roda dnv, mudei no global e deu certo '-'
mais mesmo assim vlw
se alguem poder uploda o rme map editor do bruin123 em outro site pra min, agradeço ^^"